File compression is the reduction in size of a file, either to reduce the required storage space or to hasten the transfer of the file. File compression techniques are essential for achieving reasonable storage and playback of multimedia files. Many file compression programs also serve as archive programs, combining a number of files into one.
Most file compression programs use a substitutional compressor, a technique that replaces an occurrence of a particular phrase or group of bytes with a reference to a previous occurrence of that phrase.
The two main classes of file compression schemes are named after Jakob Ziv and Abraham Lempel, who first proposed them in 1977 and 1978. The most well-known scheme is the Lempel-Ziv-Welch (LZW) scheme. The LZW algorithm is used in the V.42bis modem compression standard, Postscript Level 2, and in the graphic formats GIF and TIFF. The UNIX compress program utilizes a LZC algorithm, a variant of the LZW algorithm. PKZIP utilizes a variant of the LZ77 algorithm scheme.
Files compressed with the Microsoft Compress format files (also known as LZEXPAND files) usually end with a trailing underscore, for example, "commdlg.dl_". This format is used for many files on Windows 3.x distribution disks.
File compression techniques have been extended in recent years to hard drives with the introduction of programs like Stacker and Double Space, and even to computer RAM with programs such as Ram Doubler.